package com.wy.w_ui.tab.common;

import android.view.ViewGroup;
import androidx.annotation.Nullable;


import com.wy.w_ui.tab.top.WTabTopInfo;

import org.jetbrains.annotations.NotNull;
import java.util.List;

/**
 * tab 总接口
 * @param <Tab>
 * @param <Data> tabInfo
 */
public interface IWTabLayout<Tab extends ViewGroup,Data> {
    /**
     * 通过 tabInfo 查找 tab
     * @param data tabInfo
     * @return
     */
    Tab findTab(@NotNull Data data);

    /**
     * 添加监听事件
     * @param selectListener
     */
    void addTabSelectChangeListener(OnTabSelectListener<Data> selectListener);

    /**
     * 默认选中
     * @param defaultInfo tabInfo
     */
    void defaultSelected(@NotNull Data defaultInfo);

    /**
     * 初始化 tabLayout
     * @param infoList
     */
    void inflateInfo(@NotNull List<Data> infoList);

    interface OnTabSelectListener<Data>{
        /**
         *
         * @param index 当前点击位置
         * @param prevInfo 上一次的点击信息
         * @param nextInfo
         */
        void onTabSelectChange(int index, @Nullable Data prevInfo, @NotNull Data nextInfo);
    }
}
